<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
       /*  
        1.全局变量和局部变量
            全局变量：定义在函数外部，或者在函数内部不定义而直接赋值的变量，可以在任意函数中访问、修改，当所在页面关闭后销毁
            局部变量：定义在函数内部，只能在当前函数内访问、修改，函数运行结束，变量自动销毁 
        */
        var username="alice";//全局变量
        function show(){
            var age=40;//局部变量
            sex="女";//全局变量,在函数内未使用var声明，直接赋值的变量，也是全局变量
            console.log(username);
            console.log(age);
        }
        show();
        console.log(username);
        // console.log(age);//报错，因为age是局部变量
        console.log(sex);

        function show2(){
            console.log(sex);
        }
        show2();

     
        var a=190;//全局变量
        function show3(){
           var a=20;//局部变量
        }
        show3();
        console.log(a);

        //2.当全局变量和局部变量同名的时候,在函数内部访问的是局部变量
        var hobby="喝酒";
        function show3(){
            var hobby="打球";
            console.log("局部变量："+hobby);
            console.log("全局变量："+window.hobby);
            // console.log("全局变量："+this.hobby);
        }
    
        show3();
       
        // 3.在js中使用var不支持块级作用域，使用let支持块级作用域
        {
            var film="流浪地球";
            let film2="满江红";
           
        }
        console.log(film);
        console.log(film2);
    </script>
</head>
<body>
    
</body>
</html>